<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link rel="stylesheet" href="./css/index.css" />
    <title>记事本</title>
</head>

<body>
    <!-- 主体区域 -->
    <section id="app">
        <!-- 输入框 -->
        <!-- 3.添加功能 -->
        <header class="header">
            <h1>小黑记事本</h1>
            <!-- 进行双向绑定获取input的输入值 -->
            <input placeholder="请输入任务" class="new-todo" v-model="txt" />
            <button class="add" @click="tj">添加任务</button>
        </header>
        <!-- 列表区域 -->
        <section class="main">
            <ul class="todo-list">
                <!-- 1.渲染数据 配合key一起渲染-->
                <li class="todo" v-for="(e,i) in arr" :key="e.id">
                    <div class="view">
                        <!-- 序号使用下标+1  内容使用todo-->
                        <span class="index">{{i+1}}.</span> <label>{{e.todo}}</label>
                        <!-- 2.删除功能 设置自定义属性-->
                        <button class="destroy" @click="del(e.id)"></button>
                    </div>
                </li>
            </ul>
        </section>
        <!-- 统计和清空 -->
        <!-- 当数组长度<=0 时隐藏 取反 -->
        <footer class="footer" v-show="arr.length>0">
            <!-- 统计 -->
            <!-- 合计赋值 -->
            <span class="todo-count">合 计:<strong> {{arr.length}} </strong></span>
            <!-- 清空 -->
            <!-- 清空功能 数组清空且底部区域隐藏 -->
            <button class="clear-completed" @click="qc">
                清空任务
            </button>
        </footer>
    </section>

    <!-- 底部 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>

        const app = new Vue({
            el: '#app',
            // 自己写一组数据
            data: {
                txt: '',
                arr: [
                    { id: 1, todo: '篮球' },
                    { id: 2, todo: '篮球' },
                    { id: 3, todo: '篮球' },
                    { id: 4, todo: '篮球' }
                ]
            },
            methods: {
                // 删除事件  操作数组
                del(id) {   
                    let x = this.arr.findIndex(e => id === e.id)
                    this.arr.splice(x,1)
                },
                // 添加
                tj() {
                    // 首先不能为空
                    if (this.txt === '') {
                        return
                    }
                    // 获取数据上传数据
                    this.arr.push({ id: Math.random(), todo: this.txt })
                    // 清空表单内容
                    this.txt = ''
                },
                // 清除全部
                qc(){
                    // 赋值为空数组
                    this.arr=[]
                }
            }
        })

    </script>
</body>

</html>